In many applications, it is desirable to determine an otherwise unknown current topology of a given network. For example, such topology information is useful in analyzing data traffic flows, assessing network security, and determining readiness for implementation of Voice over Internet Protocol (VoIP).
A conventional approach to determining network topology utilizes the well-known Simple Network Management Protocol (SNMP). Such an approach is based at least in part on analysis of information contained in routing tables. As a result, this approach generally provides only a theoretical view of the network topology, rather than an actual operational view based on data traffic flows, and thus suffers from a number of significant drawbacks. For example, the resultant topology information fails to indicate how frequently certain nodes of the network are used relative to other nodes. In addition, the conventional approach fails to provide information which may be used to determine the efficacy of any load balancing processes that may be implemented in the network. Moreover, the topology information generated by the conventional approach does not reflect any variation in the topology that may occur when different types of data traffic are present. Yet another drawback of the SNMP-based approach is that it generally requires knowledge of community strings or other types of passwords in order to query a device for SNMP information.
It is therefore apparent that a need exists in the art for improved techniques for determining network topology which address one or more of the above-noted disadvantages of the conventional SNMP-based approach.